package com.hh.storeAttribute.controller;/*
 * @Description:TODO 描述
 * @Author: tongZhao
 * @date: 2023/8/16
 */

import com.hh.storeAttribute.Vo.StoreAttributeAddVo;
import com.hh.storeAttribute.Vo.StoreAttributeUpdateStatusVo;
import com.hh.storeAttribute.Vo.StoreAttributeUpdateVo;
import com.hh.storeAttribute.Vo.StoreAttributeVo;
import com.hh.storeAttribute.service.StoreAttributeService;
import com.hh.storeRoom.vo.StoreRoomUpdateStatusVo;
import com.hh.utils.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;

@CrossOrigin
@RestController
@RequestMapping("storeAttribute")
public class StoreAttributeController {

    @Autowired
    private StoreAttributeService storeAttributeService;

    /**
     * 库区属性查询接口
     * @param storeAttributeVo
     * @return
     */
    @PostMapping("queryPage")
    public ResultVo queryPage(@RequestBody StoreAttributeVo storeAttributeVo){
        return storeAttributeService.queryPage(storeAttributeVo);
    }

    /**
     * 库区属性新增接口
     * @param storeAttributeAddVo
     * @param bindingResult
     * @return
     */
    @PostMapping("add")
    public ResultVo add(@RequestBody @Valid StoreAttributeAddVo storeAttributeAddVo, BindingResult bindingResult){
        if(bindingResult.hasErrors()){
            return ResultVo.error(bindingResult.getFieldError().getDefaultMessage());
        }
        return storeAttributeService.add(storeAttributeAddVo);
    }

    /**
     * 库区属性修改接口
     * @param storeAttributeUpdateVo
     * @param bindingResult
     * @return
     */
    //修改
    @PostMapping("update")
    public ResultVo update(@RequestBody @Valid StoreAttributeUpdateVo storeAttributeUpdateVo, BindingResult bindingResult){
        if(bindingResult.hasErrors()){
            return ResultVo.error(bindingResult.getFieldError().getDefaultMessage());
        }
        return storeAttributeService.update(storeAttributeUpdateVo);
    }


    /**
     * 库区属性状态修改接口
     * @param storeAttributeUpdateStatusVo
     * @return
     */
    //修改状态
    @PostMapping("updateStatus")
    public ResultVo updateStatus(@RequestBody StoreAttributeUpdateStatusVo storeAttributeUpdateStatusVo){
        return storeAttributeService.updateStatus(storeAttributeUpdateStatusVo);
    }

}
